//package work.rightAnswer;
//
//import work.ListNode;
//
//class Solution_25 {
//    public ListNode reverseKGroup(ListNode head, int k) {
//        if(k==1){//k==1,直接返回原链表
//            return head;
//        }
//        //先创建一个头节点，headNode = new ListNode() headNode.next=null。
//        ListNode headNode = new ListNode();
//        //遍历链表，用start分别记录开始节点，遍历尾节点时切割链表，并调用reverseListNode(staryt)方法翻转链表。
//        // 翻转完后之后，连回来。pre.next =
//        ListNode start = new ListNode();
//        //pre 表示上一个的尾节点 初始为headNode 每次翻转完之后的返回的节点即为pre
//        ListNode pre = headNode;
//        //用count记录遍历到的节点数量
//        int count = 1;
//        //cur 遍历用节点
//        ListNode cur = head;
//        while (cur!=null){
//            if(count==1){
//                start = cur;
//            }
//            if(count==k){
//                ListNode next = cur.next;//暂时记录下一个节点
//                cur.next = null;//切割链表
//                reverseListNode(start);//翻转链表
//                pre.next = cur;//重新连接链表
//                //重新初始化
//                pre = start;
//                cur = next;
//                count = 1;
//                continue;
//            }
//            cur = cur.next;
//            count++;
//        }
//        if(pre!=start){
//            pre.next = start;
//        }
//
//        return headNode.next;
//    }
//
//    //翻转链表 参数，头节点
//    public void reverseListNode(ListNode node){
//
//        ListNode pre = null;
//        ListNode cur = node;
//        ListNode next = node.next;
//        while (next!=null){
//            next = cur.next;
//            cur.next = pre;
//            pre = cur;
//            cur = next;
//        }
//
//    }
//}